home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / proxy_use.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  115 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(10195);
  10.  script_version ("$Revision: 1.21 $");
  11.  name["english"] = "Usable remote proxy";
  12.  name["francais"] = "Proxy distant utilisable";
  13.  script_name(english:name["english"],
  14.           francais:name["francais"]);
  15.  
  16.  desc["english"] = string("The misconfigured proxy accepts requests coming
  17. from anywhere. This allows attackers to gain some anonymity when browsing 
  18. some sensitive sites using your proxy, making the remote sites think that
  19. the requests come from your network.
  20.  
  21. Solution: Reconfigure the remote proxy so that it only accepts requests coming 
  22. from inside your network.
  23.  
  24. Risk factor : Low / Medium");
  25.  
  26.  desc["francais"] = string("Le proxy mal configurΘ accepte des 
  27. requΩtes provenant de n'importe o∙, ce qui peut permettre α des intrus 
  28. de browser le web avec un certain anonymat, lorsqu'ils utilisent ce proxy,
  29. en faisant croire aux sites distants que les requΩtes proviennent de 
  30. votre rΘseau. Ce problΦme leur permet aussi de gacher votre bande 
  31. passante.
  32.  
  33. Solution : reconfigurez votre proxy afin qu'il n'accepte que les 
  34. requΩtes provenant de votre rΘseau interne.
  35.  
  36. Facteur de risque : Faible/Moyen");
  37.  
  38.  script_description(english:desc["english"],
  39.              francais:desc["francais"]);
  40.  
  41.  summary["english"] = "Determines if we can use the remote web proxy"; 
  42.  summary["francais"] = "Determine si nous pouvons utiliser le proxy web distant";
  43.  script_summary(english:summary["english"],
  44.          francais:summary["francais"]);
  45.  
  46.  script_category(ACT_GATHER_INFO);
  47.  
  48.  script_copyright(english:"This script is Copyright (C) 1999 Renaud Deraison",
  49.            francais:"Ce script est Copyright (C) 1999 Renaud Deraison");
  50.  
  51.  family["english"] = "Firewalls"; 
  52.  family["francais"] = "Firewalls";
  53.  
  54.  script_family(english:family["english"],
  55.             francais:family["francais"]);
  56.  script_dependencie("find_service.nes");
  57.  script_require_ports("Services/http_proxy", 3128, 8080);
  58.  exit(0);
  59. }
  60.  
  61. #
  62. # The script code starts here
  63. #
  64.  
  65. include("http_func.inc");
  66. include("misc_func.inc");
  67.  
  68. ports = add_port_in_list(list:get_kb_list("Services/http_proxy"), port:3128);
  69. ports = add_port_in_list(list:ports, port:8080);
  70.  
  71.  
  72. foreach port (ports)
  73. {
  74. soc = open_sock_tcp(port);
  75. if(soc)
  76. {
  77.  domain = get_kb_item("Settings/third_party_domain");
  78.  if(domain)
  79.   name = string("www.", domain);
  80.  else 
  81.    name = "www";
  82.    
  83.  req = string("GET / HTTP/1.0\r\nProxy-Connection: Keep-Alive\r\n\r\n");
  84.  send(socket:soc, data:req);
  85.  r = http_recv_headers(soc);
  86.  
  87.  page = recv(socket:soc, length:50);
  88.  close(soc);
  89.  
  90.  soc = open_sock_tcp(port);
  91.  if (soc)
  92.  {
  93.  command = string("GET http://", name, "/ HTTP/1.0\r\nProxy-Connection: Keep-Alive\r\n\r\n");
  94.  send(socket:soc, data:command);
  95.  buffer = http_recv_headers(soc);
  96.  
  97.  if(egrep(pattern:"^HTTP/1\.[01] 200 .*", string:buffer))
  98.           {
  99.         page2 = recv(socket:soc, length:50);
  100.         if(!(page == page2))
  101.             {
  102.              security_warning(port);
  103.             set_kb_item(name:"Proxy/usage", value:TRUE);
  104.             }
  105.         }
  106.  if(egrep(pattern:"^HTTP/1\.[01] 50[23] .*", string:buffer))
  107.          {
  108.         security_warning(port);
  109.         set_kb_item(name:"Proxy/usage", value:TRUE);
  110.         }
  111.  close(soc);
  112.  }
  113.  }
  114. }
  115.